using System.Text.Json.Serialization;
using JlPay.Sdk.Models;

namespace JlPay.Sdk.Models.Cashier
{
    /// <summary>
    /// 交易退款响应
    /// </summary>
    public class TradeRefundResponse : StandardResponse
    {
        /// <summary>
        /// 状态
        /// </summary>
        [JsonPropertyName("status")]
        public string? Status { get; set; }

        /// <summary>
        /// 商户号
        /// </summary>
        [JsonPropertyName("merch_no")]
        public string? MerchNo { get; set; }

        /// <summary>
        /// 交易ID
        /// </summary>
        [JsonPropertyName("transaction_id")]
        public string? TransactionId { get; set; }

        /// <summary>
        /// 外部交易号
        /// </summary>
        [JsonPropertyName("out_trade_no")]
        public string? OutTradeNo { get; set; }

        /// <summary>
        /// 渠道交易ID
        /// </summary>
        [JsonPropertyName("chn_transaction_id")]
        public string? ChnTransactionId { get; set; }

        /// <summary>
        /// 原外部交易号
        /// </summary>
        [JsonPropertyName("ori_out_trade_no")]
        public string? OriOutTradeNo { get; set; }

        /// <summary>
        /// 原交易ID
        /// </summary>
        [JsonPropertyName("ori_transaction_id")]
        public string? OriTransactionId { get; set; }

        /// <summary>
        /// 总金额
        /// </summary>
        [JsonPropertyName("total_amount")]
        public string? TotalAmount { get; set; }

        /// <summary>
        /// 订单时间
        /// </summary>
        [JsonPropertyName("order_time")]
        public string? OrderTime { get; set; }

        /// <summary>
        /// 交易时间
        /// </summary>
        [JsonPropertyName("trans_time")]
        public string? TransTime { get; set; }

        /// <summary>
        /// 支付类型
        /// </summary>
        [JsonPropertyName("pay_type")]
        public string? PayType { get; set; }
    }
} 